<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./Promise.js"></script>
</head>
<body>
    <h1>all与race方法实现</h1>

    <script>
         
       // 自定义Promise的使用
    
       // 直接使用Promise作为对象直接调用resolve返回来创建Promise对象
       const p1 = new Promise((resolve, reject)=>{
            // setTimeout(()=>{
            //     resolve("zhangsan");
            // },0);
            resolve("zhangsan");
       });
       const p2 = Promise.resolve("lisi");
       //const p2 = Promise.reject("error");
       const p3 = Promise.resolve("wangwu");

  
       
        // all()方法需要传入一个数组，里面是多个promise对象，并返回一个新的promise对象
        // 若多个promise对象都是成功状态，则返回的也是一个成功promise对象，其中promise值为数组，里面返回多个promise参数对象的值。
        // 若多个promise对象中有一个状态为失败，则返回的是一个失败的promise对象，其中值也为失败的值
        //const res = Promise.all([p1,p2,p3]);


        // race()方法需要传入一个数组，里面是多个promise对象，并返回一个新的promise对象
        // 其中返回的promise对象和参数中哪个promise对象执行的最快，就和谁一样。
        const res = Promise.race([p1,p2,p3]);

        console.log(res);


    </script>
</body>
</html>